I don't have time to run through all the replies at the moment, so apologies if this has already been mentioned.
Get your gun fitted. I struggled like crazy all through high school and college shooting my 870. It was frustrating has hell, and didn't seem to matter how much shooting I got in or how often I practiced.
Then I got my M2, which comes with shim adjusters. Got the right combo of shims so the gun comes up PERFECT every time. Clean, square line of sight. Tight to my shoulder with my cheek down. It was like night and day, and almost instantly. I think the softer cheek pad helped, too. With my 870, I instinctively shot with my cheek off the stock. I think because after a few too many whacks with magnum loads, my brain wouldn't allow the abuse.
Now with the Benelli, there's no flinching. I get right down cozy with the stock and everything falls into place.
Not saying you have to get a Benelli, but doing some modifications to your gun (they make aftermarket slip-on risers or extenders, for instance) could help a ton.
My 2 cents.