I've learned a few things in the course of my life about dealing with situations like this. Of course, in matters of the heart and human psychology, YMMV. Take what follows as free advice, worth everything you paid for it.
1. You can't make someone change. Doesn't matter how valid, wise or wonderful the change you want them to make is. The person has to want to change, and be willing to input the time and energy necessary to make the change. The person has to care at least as much as you do. Otherwise, you're beating your head into a wall.
Once the person reaches that point, sure, you can help. You can provide resources, a shoulder to cry on, advice, and more. But until that person reaches that point, anything you do is useless. In fact, it's worse than useless, because it often shields the person from the consequences of the decisions they make and the lifestyle they live.
2. There's the ethic adhered to be some that being someone's family, being related by blood, gives a person the right to--well, I'm going to be a little crude here, but to the point--that being family gives a person the right to shit all over everyone. I've never subscribed to that ethic. In fact, I think being family means one must live by a higher, not lower, standard of conduct. This should not be confused with helping a family member confront an external threat--in that, yes, be loyal right to the hilt to your blood. But this situation? No. No one has the right to treat you this way, especially someone who is family. Especially that.
3. That fact that you put up with all this and still care speaks volumes about your qualities as a human being. You're awesome, with a heart of gold. Don't let anyone tell you differently, even if you make the hard choice to sever ties with your mother and leave her to face the consequences of her choices on her own.