What about basing the whack on on ships distance from he firing point? Use the same original formula (a bit in reverse) but have the firing point as 0,0,0 and the objects position be the distance for the whack. So in the case of your ship at 10000,10000.10000 being hit by a beam fired a 0,0,0 it would get almost no whack while if that beam were fired from 10000,10000,9500 you would get knocked around pretty good.
So I guess what I'm saying is instead of 0,0,0 use the targets position and instead of the targets position use the firing point the shot came from.