What is connected to analog pins 1 and 2?
float factor = ((StartPoint+(FinishPoint/3.248+101.486)))/250*1000000; //need to divide by 1000000, did this to maintain accuracy and not drop off digits
First divide by 250 then multiply by 1000000. This doesn't make sense. Just multiply by 4000.
If you want floating point arithmetic to be performed, you must use floating point values. 250 and 1000000 are not floating point values.
What do those other magic numbers mean?
time = micros()/1000000; // store the new value;
Absent indications to the contrary, constants are treated as ints. 1000000 is not an int value. You need to suffix this value with L or UL.
elapsedtime = micros() - time; // how long since the last time something was stored in time
time = micros()/1000000; // store the new value;
micros() returns a value in microseconds. time will have a value in seconds. Subtracting time in seconds from millis()'s value in microseconds is meaningless, like subtracting amps from feet.
The final function (running total), is returning gibberish...any idea whats wrong?
There are no functions besides setup() and loop() defined, so that makes loop() the final function. How this relates to running total is unclear.