I want to design a passive high pass filter to remove a voltage offset with a cut-off frequency of 0.1Hz. A simple RC filter would include the values of R = 159k and C = 10uF. I want to avoid using a very big resistor, and this leaves me with the provlem of a large capacitor. I want to avoid an electrolytic one, and this leaves me with the option of using the large Film capacitors that occupy a lot of space on my PCB. The question now is: What about the Tantalum capacitors? or the Niobium oxide ones? The signal is actually from a heartbeat sensor that measures the transparency of the blood at the fingertip. I want to have the voltage offset removed. Other ideas are also welcome. Below you can see the signal from the heartbeat sensor
First, ceramic capacitors are readily available to 10s of µF at the low voltages you are using. Ceramic capacitors can be non-linear when the applied voltage gets near the end of its specified range. You therefore want to get one specified significantly more than the offset you want to remove. It seems you want to remove less than 2 V of DC bias, so even "10 V" ceramic caps should do quite well.
Second, if you want a more accurate high pass rolloff frequency, then err on the low side, and do the real high pass in firmware. Maybe you don't even need to do a high pass at all in hardware. This depends on the A/D range and how the signal fits within it. If the signal will always be within the A/D range with enough resolution, then this is a firmware problem, not a hardware problem.
The typical way of handling light-based pulse sensors is to modulate the frequency of the light-generating LED to some reasonable level. The signal is then demodulated after sampling. This lets you avoid very low frequency corners in your high pass filter, which will get blown away with every motion artifact anyway.
You simply high-pass or band-pass filter to capture your modulation frequency prior to sampling, then demodulate. Your processing on the digital side will be much easier. Use something like like a Gertzel algorithm to recover your main frequency. If you aren't sampling, simply band pass, then rectify, then low pass filter.
Your results will be MUCH more robust, and much less susceptible to motion artifact at the sensor.