Hi,
If you are using the animator i would go for the PlayMakerAnimatorStateSynchronization
Else you can try to play arround with the tolerance, try setting it to 0.1 on the moving state.
I decided to not use the Animator, and use a Get Fsm Float instead.
To give you an idea of what I'm doing... I have an FSM on my character called Movement which detects input and sends that to the Animation Controller.
I have another FSM called Rotation on my character. So when my character isn't moving and I move the mouse, my Character rotates and also plays a stepping in place animation. As soon as he moves I need to de-activate that stepping in place animation, thus comparing the input floats to transition to another State.
So using a tolerance will not work since the character can move back and strafe, thus creating a negative float number.