Williams started his career with Reading, making his first appearance in the 1991–92 season. This first spell at Reading saw him established as a firm fans favourite. His talent and youth saw him play in every position for The Royals, from centre-forward to emergency goalkeeper, wearing every shirt number from 1–11, plus both substitute numbers 12 and 14, in the process. He was a regular in the side that missed out on promotion to the Premier League, eventually losing to Bolton Wanderers in the 1994–95 First Division Play-off Final at Wembley. Williams had scored the second goal in that game, giving them a 2–0 lead in the first half, before two late goals saw Bolton draw level and force extra time, going on to win the game 4–3 and seal a place in the FA Premier League – a level at which Williams would ultimately never play.
In 1996, he was signed by Wolverhampton Wanderers, where he remained until the 1999–2000 season. His time at Molineux was largely interrupted by injury; he made just 36 appearances in over three seasons.
He returned to Reading during the 1999–2000 season and played a crucial part in their rejuvenation under Alan Pardew and their promotion to back to the First Division in 2001–02. In a vote to compile the Royals' best-ever eleven, Williams was voted the best centre back with 59.9% of the vote.
Despite being a firm favourite at the Madejski Stadium he chose to move to Championship rivals Coventry City on a free transfer in Autumn 2004, having been refused the contract he wanted with Reading. Signed by Peter Reid to replace Calum Davenport and Muhamed Konjić, Williams went on to make 23 appearances in League and Cup, scoring goals in a 2–1 win at Millmoor against Rotherham United, and in a 2–1 home defeat by Queens Park Rangers.
He started the 2005–06 season out of the Sky Blues side and joined struggling Millwall on loan for three months. Following the end of this loan spell, Williams returned to the Coventry side for the home game against his old club Wolves on 2 January 2006, playing a key defensive role in a 2–0 home win. This performance, and other similar performances put him right back in the first team picture at the Ricoh Arena.
Williams joined Swindon Town in the summer of 2006, and following the resignation of Dave Tuttle as caretaker manager, Williams briefly held that position himself until the appointment of Paul Sturrock on 7 November 2006. On 3 May 2008 he decided that the Swindon Town vs Millwall game would be his last, ending his 19-year career span, although ultimately he was not selected on the day.
Williams joined Weston-super-Mare in June 2009,.
Williams was born in Reading but qualified to play for Wales through his father. He made seven international appearances during his first spell with Reading, including one at home to Moldova in 1995 alongside fellow Reading player Lee Nogan. Five more caps followed whilst at Wolverhampton Wanderers, including scoring his first international goal during a 2–1 win over Denmark, and in November 2002 he received his first international call-up for three years when he was selected for a squad to take on Azerbaijan. On 26 May 2003 Williams played the full 90 minutes as Wales lost 2–0 against the USA in an international friendly at the Spartan Stadium in San Jose, California, his first international start for four years. He was an unused substitute for a number of matches including an away defeat to Italy in the San Siro, while he missed the play-off with Russia through injury.
On 23 March 2010, Williams accepted his first managerial post as boss of Southern League Premier strugglers Bedford Town F.C. Whilst Ady initially improved their form enabling them to stave off relegation, they made a poor start to the 2010/11 season struggling in the relegation places and making early exits from the FA Cup and FA Trophy. Following the away FA Trophy defeat to Harlow on 16 October 2010 Ady resigned his position.
On 29 January 2011, he took charge of Southern League Premier Division side Didcot Town. Williams was replaced however in the summer of 2011 by Francis Vines.