No, you need to sample much much more often than 1Hz - you have a HIGH pass filter, there is no information at low frequencies.
Furthermore you need to be aware of frequency-aliasing if you sample at less than twice the maximum signal frequency.
I can't tell what frequencies you are interested in, but lets say 1..100Hz, in which case you want to sample at a minimum of 200Hz.
As for integration, you just sum the values and adjust by a factor depending on the period between samples. Integrating twice in a row will get a very drift-prone result - using an accelerometer to measure distance is not ideal (you can determine amplitude of vibration on the short term, which I assume is the aim as you are high-pass-filtering). If you don't sample at at least twice the highest frequency present in the signal you will lose information.
To get regular samples you can use a timer interrupt, or you can wait for successive clock values:
long sample_time = millis () ;
if (millis () - sample_time >= SAMPLE_PERIOD)
sample_time += SAMPLE_PERIOD ;
sample () ;
It is important to increase sample_time by a fixed amount each time like this and to do the timestamp comparisons this way. If you see code like this:
if (millis () > target_time)
Then its broken since target_time might be the maximum representable value at some point and the test can then never succeed. (The point is that timestamp values can and do wrap-round)