When you use an IC, and encounter silicon bug in the field after 1 000 000 hours, you just recall your products (or replace under warranty when necessary), then behind the scenes, work tediously with the IC manufacturer, and, most likely, end up redesigning the damn board to use a different IC. Completely normal design incidence, not fun, but does happen.
When the same happens with a simple "fixed" MCU, you do the same warranty / recall thing, but instead of banging your head on the wall for weeks, you just fix your bug. Unless, of course, you can't find it, or it ends up being a reliability issue in the MCU itself, in which case we are back to banging head
. Does happen as well.
So not much difference.
People automatically and directly judging MCUs more error prone than "ready ICs" only show they lack real design experience.
Of course, if you cannot do it, the options are that you either learn to do it, or don't do it that way. Both are sensible choices.
Sometimes ICs even from major manufacturers can be utter catastrophes, easily replaced with an MCU with a few lines of almost untested, but simple enough code being more reliable. Battery management ICs are a good example. Even if not buggy, they often implement totally wrong or dangerous algorithms. Although, I guess, to be more relevant to the OP's case, standalone ADCs will be better, and reliable too, if they just happen to suit the need. But if you cannot find a suitable one, then it's best to keep the MCU route open and evaluate it by case-by-case technical metrics instead of clearly wrong and obsolete "rules of thumb".
So yeah, if an MCU with a few simply verified lines of code happens to fit better in engineering terms (cost, availability, performance, design time, anything), it should be considered as an option, and it can be considered as a "one time programmable part", with the risk that you need to manually replace or reprogram them anyway, and it should be compared to the risk that you need rework / replacements using ICs or even discrete components as well!
Software is not the only part where you can end up with unexpected, untested state space. Unreliability by design mistakes can happen (and often does) even when designing passives, even the power PCB layout!! Even if reprogramming an MCU required a shipment from customer, and using a special connector jig to reprogram, it's still
a lot easier than reworking circuitry by adding jump wires, desoldering and changing components, etc., which could be the alternative.
Calculate total cost and total risk by comparing solutions doing the same end result. Avoid complexity. Sometimes it means using a user-reflashable MCU; sometimes a "one time programmed MCU" as a component; sometimes an IC; sometimes a totally discrete design. All can fail in different ways.