its something i just come up with, so i need to test it, but what if you compare the distance to a temp point, every so many ticks, this can tell you if its has been moved and check if its moving fast or not, and it doesn't need alot of overhead calculation, like velocity calculation
sqrt(Object.Physics.VelocityX ^ 2 + Object.Physics.VelocityY ^ 2)