There shouldn't be anything wrong with a simple resistive divider if you plan for the potential pitfalls:
Will the temperature of the divider be constant? Are the tempcos of your resistors matched? What tolerance resistors do you need to get an accurate measurement? Can you calibrate the offset in software?
How much current can your sensor source? If the source current is very low, maybe the relatively high value resistors required wouldn't be cheap for tight tolerance or would be too high thermal noise.
If you can live with reduced dynamic range, you could do a half divider or something instead of a 4.5:3.3 divider and be covered up to 6.6V. You could also use diodes in series, a pair of them could give you a 1.3V drop, but then you'd lose the bottom end of the measurements not being able to overcome the measurement. You could do the opposite and just put in a voltage clamp at 3.3V and lose the top end of the potential measurement, or one of each and get your 0.5V or so diode drop to get the minimum output from the sensor and then a clamp at 3.3V on the ADC side, losing only 0.7V of dynamic range.
You could also use your resistive divider and then use a zener clamp on the high side at 5V, so that if the input ever goes beyond what, after division, the ADC can handle, it's dealt with.
Opamp circuits can do just fine, but if you can deal with the potential issues with resistors or diodes, then they offer MUCH cheaper design options. Even springing for low tempco 0.5% resistors could be cheaper than an opamp and the associated passives in the design.