In my mind, a flinch is occurring because a person is thinking about the recoil more than hitting the target.
When breaking in new shooters, we shoot at rubber targets, clay birds, etc instead of paper. If they are thinking about "whacking" the target, they generally aren't thinking about the recoil.
All of that said, I generally don't shoot guns that pound or hurt me (love that slow pushing Black Powder). I NEVER hand another shooter a gun that will hurt them. I think those videos of folks handing a small girl a 10 gauge to shoot are detestable, and not humorous at all. They've most likely lost a potential shooter forever.
I also coach new shooters that the gun they are shooting won't hurt them, though it may startle them at first. I note that in reality, it will jump but won't actually "kick" them. I also make dead sure that they have ear plugs in, and muff too if possible. I find a lot of flinching is due to noise. Also, glasses are a must. If they want to shoot something that actually does recoil, I add a recoil pad to their shoulder. Once they are not scared of a gun, then I re-focus them to the target. Comments like, "You're going to kill that clay bird". Or "Knock that rubber ball over the berm". That sort of thing.
With flinters I find that a firm hold with both hands (for me) keeps the barrel pointed the same way until the ball is clear of the muzzle. I am constantly baffled by shooters who can shoot a longrifle with the fore end balanced on finger tips. I can't do that! I shoot from the bench the same way, tight hold with both hands, no part of the gun touching anything but me.
There is nothing better than the look on a shooter's face when the connect with a target. Especially the first time. :-)
I hope some of this helps someone. God Bless, Marc