How do I get the position of an object from a previous frame? Not the current frame
Image Above.  Graph View shows an FCurve and its attributes.  Location {X,Y,Z} components.  Each of {X,Y,Z} has a different F-Curve. The Python Console View shows querying the active object for an fcurve by name.  Your object name will appear differently.  Next the curve is evaluated at different points.  Note that {0:X, 1:Y, 2:Z} shows the [conceptual] map between the array index and the concept of axis in the [find] function.  This number is labelled RNA axis in the image above.  Please Click on image to see a larger version for improved readability.

Thus you can 


Find the FCurve by name and axis index 
Evaluate the FCurve value at a chosen frame.
Use the notion of current frame as an integer value in Python
Calculate Vector V1 at frame (X) and V2 at frame (X+N). X and N may be integers. 
Calculate velocity vector (V2-V1)/N


Some quick snippets to help you search further at BSE.  Sorry I can not find a simple example in my personal documents.

object_bq = bpy.data.objects[name]
test = object_bq.animation_data.action if (None != object_bq.animation_data and (None != object_bq.animation_data.action)) else None;
if (test):
 fc =       object_bq.animation_data.action.fcurves.find("Some Curve Name Visible in the FCurves Editor Panel");
fc.evaluate(framenumber)


The above old pseudo code is not claimed to be Pythonic or immediately usable.  You  will need to improve the code.  The code above is intended to establish that the FCurve exist for the provided textual name.