What you describe sounds like the client is only interpolating between packets of data received from the server.
With such an approach smooth movement is hard to achieve:
1. Due to network latency, data displayed on the client side is never up-to-date. The client "lags".
2. Due to network latency, the packets don't arrive at perfectly regular intervals. Latency will cause "jumps" in your movement animations.
The better solution is to implement client-side movement prediction, as hplus0603 pointed out. With a good movement prediction algorithm, corrections will happen rarely.
Here's an article that explains the whole issue very clear and from a high level perspective: