Hy Prathyush,
Here is another thing to consider. You may be trying to stop the move in between physical poles on the stepper motor. Since the motor has 200 steps per revolution, that means that there are 200 physical poles on the motor to step with. You are microstepping at 10 microsteps/step. So, if you try to stop a move after a number of steps that is not divisible by 10, then you are essentially trying to hold the rotor between two poles which are competing to magnetically attract it. Essentially, the rotor is in an unstable "tug-of-war" so to speak. Now your encoder has a resolution of 2000 counts/rev, each count being evenly spaced out. If the motor is being held between two poles, there might be slight vibrations which cause the encoder feedback to vary slightly, thus giving you a 3-4 count error. If you set up your moves where you never land in between poles, I expect you should have better accuracy.
Wes P
Applications Engineer
National Instruments
Wes Pierce
Principal Engineer
Pierce Controls