Williams, who turns 36 in August, arrives at Bescot on a one-year deal having had an extensive Football League career.
He spent two seasons with Cheltenham, scoring 13 goals in 78 appearances across all competitions.
The experienced forward has also played for Northampton Town, Doncaster Rovers, Swindon Town, Yeovil Town, Bristol Rovers and Hereford United, amassing a total of 683 games and 157 goals.
“I am delighted. I had a few chats with the gaffer and I knew a little bit about him before coming here from what he did at Newport," said Williams.
“It is a good club, I have played here quite a few times before and there is a good atmosphere, a good fanbase and I am excited for the challenge ahead.
“As a striker I will never change, I will always want to score goals and try my best to be the top scorer and that will be my aim.
“Again, in more recent years, I have worked out the value in helping others around you, helping the team as a group and you then succeed together if everyone is firing on all cylinders.
“I want to be helping supply goals as well as score them and that is something that I have been doing a bit more of in the last few years and hopefully it is something I can improve upon a bit more here because no matter what age you are, you are still looking to improve, develop and keep getting better.”
Saddlers boss Michael Flynn added on Williams' signing: "He’s a top professional, a focal point up front and has been part of a promotion winning team and a League One team last season so has played at a higher level.
“He looks after himself really well and I’m looking forward to him being part of the squad going forward.”