What is the possible reasons that cause the different motor strokes of two directions
I think you might be looking at BACKLASH, which is basically loose fit parts in mechanical transmission systems.  You have to turn the motor just to eat up the slack before any actual stage motion can happen.  Ideally, motion feedback would come from the position of the stage, and not the pulses to the motor.

Such effects are NONLINEAR, and often hard to deal with.  I suppose you can measure the backlash associated with changing directions (it doesn't have to be the same for both directions, and it doesn't even have to be consistent between instances) and work it into your control scheme.