You should definitely lean into the PWM approach for smooth movement, but you won't want to hardcode a lookup table for every single speed. The goal is interpolation between known points to avoid jumps. Think of it like mapping a curve instead of just finding discrete steps. You need a control loop that constantly adjusts the duty cycle based on the desired speed. If your weather station gives you a new value, you calculate what the required voltage or current should be for that speed, then find the two closest known data points in your table. Then you mathematically blend the duty cycle settings of those two points to get a smooth transition. That prevents the needle from snapping from one value to the next, which is what gives it that gliding feeling you want. Since the meter response is linear between those known taps, a simple linear interpolation will handle most of the movement. Just treat your established data points as coordinates, where one axis is the desired speed and the other is the specific PWM value needed to hit that speed. When the input speed changes, you find where that new speed sits between two existing coordinate points and calculate the weighted average of the PWM values at those two points. This keeps the action fluid.
It is critical that you have a good baseline of readings first. Since you are using a continuous variable like speed, you need enough test points across the operating range to build a reliable curve. If you only test at 0, 30, 60, and 100, the needle will look jittery at 55. Once you have that set of known good points, then the interpolation software can take over and make it look professional. Don't just rely on eye-balling the adjustment; log the exact duty cycle you used every time you nail a reading to build a better calibration dataset. This method works becasue the microcontroller is just acting as a translator between the physics of the meter and the data coming in from your station. You aren't trying to brute force the voltage; you are finding the precise signal level that the meter requires at that exact moment. It turns a simple output into a finely tuned control system.