The 20-year-old had been in talks with the Saddlers and has penned a contract until the summer of 2017.
Morris, who spent time on loan at Wrexham this season, has made 14 appearances for the Saddlers, scoring twice.
“I’m really pleased,” said Morris, a product of Walsall’s youth system. “Since I came back from Wrexham I’ve started seven games in a row and tried to make an impact and be as consistent as possible.
“I knew when I went out on loan I had to impress and in my first game back the pressure was on to perform well.
“I knew the standard would be harder and the tempo would be quicker but I feel like I’ve adapted to it well.
“The first 30 minutes was quite a blow and my lungs were going but since then I’ve slotted straight back in. Now it’s out the way I’m ready to kick on next season.
“This club has always been good for giving young talent a chance and I feel like I’ve got a chance of playing first-team football here.
“Next year I want to play as many games as possible and just keep improving.”