This is not meant to be profound but it's something that I heard like years and years ago and it made an impression on me. You need to pocket every shot with accuracy.
What that means is, you can't just sloppily shoot easy shots, wobble them in, touch the rails and that sort of thing just because you've got such a margin of error and can get away with it.
If you're always pocketing balls with precision, even the easiest ones, you'll find the tough shots will just come. You use the same fundamentals to pocket easy shots as you do tough shots.
This I got from Ray Martin. Never mindlessly bang balls around, always try to play with deliberate intention when you're on the table. I know that sounds like, "That's not much fun" but if you want to be a strong consistent player you can't let that muscle memory get contaminated or develop sloppy habits.
That's not to say that this means you shouldn't practice specific shots that you may be having a problem with, you should. It just means the whole game will be easier if you keep those things in mind.
If you truly want to be a serious player, you have to approach the game seriously. It can be difficult and even awkward sometimes, but it's probably best to avoid social play with really weak players.
You're serious play is not really compatible. You don't want to be a snob, but It's not much fun for them, and watching their weak poor fundamental sloppy play is not a very good mental exercise for you.
I guess I don't sound like much fun do I. Just an old man sitting here typing random thoughts.