Proper HW circuit to decode PWM signal using Arduino Mini
Discretize Amplitude or Time – that is the (signal processing question)

Seeing that you're using a microcontroller running at at leas 8 MHz (probably 16 MHz): It's way easier to measure the time a signal was high than to first average out the PWM  cycle in analog domain and then convert that analog voltage to digital.

If this was a sigma-delta ADC, which are pretty popular for most applications these days: Technologically, the conversion from analog voltages to digital numbers happens through counting the time a signal was high; I think the Atmega328p uses a successive approximation ADC, though.

The technological reality is that for signals below a couple of GHz, it's easier to build fast digital silicon logic than to build exact analog silicon. Thus, the less complex, more accurate and often less power-hungry solution is always to rather measure in time direction than in amplitude direction.

Implementation

So, I'd stay with the 220 Ω resistor: It really limits the current in the misconfiguration case, and is negligible compared to the proper input impedance.

Whether or not to add a capacitor really depends on what amount of noise you're expecting: you'll need a lot of noise to convert a stable TTL "high" to a "low", or vice versa. It still makes sense to do a bit of filtering, but not really with 0.1 µF:

----|220 Ω| ----·------ GPIO PIN
       R        |
                = C?
                |
                v GND


If we understand the RC combination as low-pass filter, then 220 Ω -- 100 nF leads to a cutoff frequency of ca 8 kHz, so not enough to average out a PWM cycle (if you wanted to go the analog voltage route), but maybe a little too much if you wanted to the low/high edges nice and sharp for detection. Assuming no significant inteferers between that frequency and 80 kHz, I'd maybe start with 10 nF – I think the ATmega328p has smitt trigger inputs, so you're really pretty safe from transients.

So, you only need to implement a way of measuring time: for the large time scales you're talking about, this could easily done by waiting for the pin to become high, and then just counting the CPU cycles until it turns low again. But that blocks the CPU for anything else – it'd be more elegant to use to use the built-in Timer/Counter units of the microcontroller, which have been invented for exactly that reason. You can program them to start counting at the rising edge of an external input signal, and stop on a negative edge.