There is not. I don't think that the API can distinguish between the two types of move either. The on:change event doesn't know how the x-y position was changed. One could theoretically create a script that would register any position change and then move the token back to where it would have been had it only moved one grid square, but you'd have to account for differing grid sizes and patterns, and whether there is a grid urned on at all. The token would still move, it would just snap back the the nearest cell adjacent of the origin cell. Look at this another way, what are you trying to accomplish?