you're right that you need to consider what you want your new velocity to be. But you also need to consider what amount of acceleration will take you there. In your example, you take the desired velocity minus the current velocity and add that
to the current velocity. That basically sets your velocity to the desired velocity in one shot. Should work perfectly, so long as speed is set to something reasonable.

Let me think out loud for a moment:

The one thing missing from your equations is time.

pos += velocity * time.

velocity += acceleration * time.

Since it's missing, then we assume the change in time is 1, so I guess your units are in frames.

The desired speed is 0.005 units per frame.

the desired velocity is a vector in the direction of the target relative to your current position at the desired speed. That's right.

The change in velocity "steering" is simply the desiredVelocity - the velocity, which doesn't account for any maximum amount of acceleration or anything. You basically get infinite acceleration - infinite force applied instantaneously. So I
assume what you are observing is that the model just goes directly toward the target at the given speed, with no smoothness. Right?

I'd normalize this steeringV value (it has the right direction) but give it a magnitude that accounts for the maximum acceleration you can apply in a frame (akin to the maximum force you can apply.)