Dealing with Real time variables and compensating the errors from adc
Digital filtering is a a huge topic that is very tough.

Of course you can try stuff that might work at the end, but that's not what I call "design".

For your particular problem, there is something important to understand: All digital filtering are applied math. Theses math are correct when (and only when) some assumptions are met. One of the most important one is the Nyquist criteria which basically says that none of the frequency content of the input signal should be higher than half the sampling rate.

For instance, if you plan to acquire at 100kHz (ADC at 100'000 samples/s), you must ensure that there is no content at frequencies higher than 50kHz in the analog signal at the ADC  input pin. And this is very important. If you don't ensure that (and we will see later how to do this) then you are not allowed to do the math of the signal processing theory. I don't say that you cannot do them but I said that it might be that your digital low pass filter will not behave as such or that you will see unexpected behaviors.

It might be that your sensor is bandwidth limited, then you know that you will never see any frequencies above a given threshold. Then you can enter the ADC directly (if the Nyquist criteria is met, or course). But if it's not the case, what you usually do to avoid this is to put an analog low pass filter at the input of your ADC with a cut off frequency much lower than the Nyquist frequency (half the sampling rate, in our example 50kHz). Why "much lower"? In fact you have to ensure that at the Nyquist frequency and above, your filter already has a strong attenuation. This filter is called an anti-aliasing filter.

For your particular problem: You can see that you may need an analog filter at the input of your ADC and you wanted to have some low pass filtering on your data. What I suggest, is to use the anti-aliasing filter to do your low pass filtering directly. That way, you don't need the software filtering at all. This will save a lot of computing cycles.

What would be the advantage to use a digital filter here? If you already need a low pass analog filter at the input: No real advantages, except that the filter will not by sensitive to component tolerances if done in software (is it a requirement here? not sure).

What I suggest: Put an analog low pass filter at the input of you ADC and you will not get any "absurd" data in your signal. (With the assumption that you don't pollute your signal between the low pass filter and the ADC and that your absurd data are not coming from some software bugs)