Hey. You aren't the first woman that hopes and expects a man will mature when a baby comes along and you won't be the last. Most rational people change their bad habits or at least cut down on them when they become a parent and they also stop living for theirself and realise that the child comes first.
So saying that, it doesn't matter what you knew he was like before. He was a pot smoker and lazy and being hopeful (as we should be) you thought he might change. This doesn't make you wrong, bad or stupid. It makes you human. He should be willing to change his ways for his child but sadly, it doesn't seem like he will. Some people are just very selfish.
Your age also doesn't matter. My sister had a baby at 17 and is a great mum as are you. Her partner, like yours, didn't change his ways either once she had her daughter and they split up after some time. She matured, he didn't, she ended up having enough and ending it.
You know now that it's likely he won't change and you want to do something now. He doesn't hit you or your daughter so you aren't putting her in danger here. She's just in a less than ideal situation but you didn't choose this.
The choice is yours now though. Being a single mum is tough but you do it all now anyway. He doesn't give you any say over finances either and spends a lot on pot so you'd probably actually be better off leaving him and claiming benefits for a while until your daughter is 3 or so and you can get a job.
Just because he didn't change or grow up, that doesn't mean you made a bad choice. You just hoped and don't let this lay about kill your hope. There's good men out there who love being dads and helping out but then there's one's that stay child like forever and sadly, some women get caught up with them!