"Even after removing gravity I suspect from simply integrating acceleration I could end up with crazy speeds."
Yes, the biggest error in accelerometers is the "zero-g bias".
The typical accelerometer bias will rapidly accumulate in a simple integrator to crazy speeds.
However, there are ways of automatically compensating for this bias.
The simplest method is to stop frequently, and zero things out during the stop.
More sophisticated accelerometer autocalibration techniques can compensate for this bias even while we are moving, and even if there are slow (possibly temperature-related) changes in that bias.
Some of those techniques take advantage of the fact that, the average acceleration over "long" time periods must be approximately zero (otherwise we would soon reach Mach 100), and indoors the average velocity must be approximately zero (otherwise we would soon exit the building).
"Accurate absolute ground-speed, not relative to device"
The swarm of quadcopters at the UPenn GRASP Lab is pretty amazing.
Most people don't notice that the position and speed sensors are not attached to the quadcopters themselves, but firmly bolted to the walls of the room the quadcopters are in.
Unreliable sources tell me they get millimeter accuracy with a $30,000 motion capture system.
I'm pretty sure gyros and accelerometers are mounted on the quadcopters,
and the GRASP people use a Kalman filter to convert the raw data (rotation, acceleration, and motion-capture approximate position) into position and velocity information.
I hear a lot of people use a string potentiometer a b c d or ultrasonic pingers to measure distance.
There's a way of using 3 (or more) of them to find absolute x,y,z, position.
I hear each string potentiometer is "only" $200.
"Detecting zero movement"
Many systems (including low-cost "laser mice") detect movement using "optical flow".
If you're lucky, perhaps a hacked mouse or two a b c d e f will give you adequate data?
What you're worried about is sampling jitter. I wouldn't sweat it for this application; running the sampling code in a loop will tie the sample time to the crystal oscillator on the Arduino, which should have more than adequate stability for your application.
Sample rate is something you should think more about, however. In order to resolve the acceleration from hitting a pothole, which is generally a short event, I'd recommend sampling rates in the range of 200Hz - 2kHz. The higher the better, at the cost of increased storage to hold all of the samples.
At lower sampling frequencies, you'll still see an acceleration spike from hitting the pothole, but it's likely that you'll miss the actual peak of the event due to sampling error. As a result, it will look less severe in your data than it actually was.
As an aside, it's fun to look at what your suspension does for you. Mount a high fullscale accelerometer directly to the unsprung mass (i.e. on your wheel hub). That will show you what the acceleration looks like before it's mechanically filtered by your suspension.
Best Answer
Integration of an acceleration is not a velocity alone, but velocity due to acceleration over time, plus the constant initial velocity.
Therefore the rationale of integrating acceleration to determine velocity is invalid, unless the initial velocity is provable to be zero.
The answer: No, an accelerometer, or a gyroscope, can not be used to determine constant velocity, without some additional sensor, or baseline data i.e. initial velocity.