Yeah, OK. Maybe something like this then:
maxSpeed = 10;
minSpeed = 0;
maxDistance = 500;
target = thisComp.layer("Target").position;
pointer = thisComp.layer("Pointer").position;
accum = d = [0,0];
f = timeToFrames(time);
for (i = 0; i <= f; i++){
t = framesToTime(i);
d = target.valueAtTime(t) - pointer.valueAtTime(t);
factor = linear(length(d),0,maxDistance,maxSpeed,minSpeed);
accum += normalize(d)*factor;
}
value - accum;