Automation hides a step rather than removing it.
When a person does an unnecessary task, it has a visible cost — their time, their irritation, and the chance they eventually ask why. Automate it and that cost disappears from view while the step remains in the process, now with a script that has to be maintained and a dependency that has to be understood by whoever inherits it.
The compounding version of this is worse: a later process change has to accommodate the automated step, because breaking it has consequences. The unnecessary work is now structural.
How to find the steps that exist out of habit.
Follow one real instance end to end, with the person who does it, in the systems they actually use. Not a description of the process — the process.
At each step ask what happens if it is skipped. If nobody can say, or the answer is that someone would have to be told, that is a candidate. Approvals are the richest vein: look for ones where the approver has never declined anything, which means the step is a delay with a signature on it.
The other reliable question is who reads this. Reports produced monthly that nobody opens are extremely common, and they are usually kept because someone asked for them once, three years ago, for a decision that has since been made.
Then automate what earned it.
High frequency, low judgment, and currently done by someone who resents it — those three together are almost always the best first candidate. Build the exception path at the same time, because the interesting failures are never the happy path, and make sure a failure alerts a person rather than failing quietly. An automation that reports success while doing nothing is worse than no automation at all, because now nobody is watching.

