In order to get a sensible solution you need to step back and look at the requirements:
1) What does the typical input signal look like? Unipolar? Bipolar? Frequency? Range? Envelope? Modulation? Noise?
2) Is peak detection all that is required?
3) How quickly/regularly do you need to detect the peak?
4) How accurately do you need to measure the peak?
5) Why do you need to FIR if only peak detecting?
6) Is the FIR frequency selective or simply averaging/noise filtering?
7) If the ADC data is used elsewhere at what rate is it used?
To me filtering before peak detection implies that you don't want absolute raw peak detection but rather a more conservative peak detection that ignores any spurious spikes that are not considered to be part of the signal of interest.
If so it may be more efficient to keep track of each bit read from the ADC, noting the most significant combination of bits "P" that is set at least "X" times in your period of "N" samples and simply output this value.
The higher "X" is and the higher "N" is the more noise-free and reliable your peak value reported will be.