The snapshot function creates duplicate objects, not an animation trail. It doesn't appear to work w/locators, but try it w/a simple object.
Maybe you can use a simple object rather than a null?
Another approach might be to use the modulus function to duplicate a locator at a given interval. The modulus function, "%", can be used to calculate the remainder of a division operation. So if you were dividing by 5, the modulus would return 0 on all the frames which are divisible by 5. I don't know how to evaluate a motion path over time, but I'm sure it can be done.
IE:
// MODULUS FUNCTION:
print (21 % 4);
// Result will be 1