At a sampling rate of 8Hz you would have to filter out everything above 4Hz in the input before it gets to the FIR filter, otherwise you will get aliased frequencies.
You also need to fix your code so that it actually samples at a rate of 8Hz.
I've just spotted another problem in your code. The FIR filter assumes that the signal is centred at 0V whereas the ADC returns values from 0 to 1023 which represents a voltage range from zero to +5V. Make the change shown here to offset the value properly:
output += (*p-- - 512) * B[i];
Have you offset your input signal so that it is within the range 0 to 5V? A negative voltage on pin A0 could destroy the pin or, in the worst case, the Arduino as a whole.
Pete