Adam joined Rangers as a schoolboy, going on to play for the clubs under 19 side. He was a finalist in the Scottish Youth Cup final in April 2009, lost 2–1 to Hibernian, and was again a runner-up in the same competition a year later when Celtic won 2–0. He was included in the Rangers first team squad for the first time on 16 October 2010, as an unused substitute in a 4–1 win over Motherwell. He was sent on loan to Forfar in July 2011. The loan was due to run until January, but Adam was recalled by Rangers after just one game. The curtailment of the loan deal required the permission of the Scottish Football League board, which was obtained. In January 2012, Adam was sent on loan to Airdrie United. He made his debut on 28 January, playing the full 90 minutes against Stirling. With parent club Rangers going into administration in February 2012, this led to fears he would have to return to Rangers but he remained with the club. On 25 February, he was sent off in the 36th minute against East Fife for a deliberate handball outside the area. Adam said the ball had struck him on the chest however Airdrie decided not to appeal as video evidence wasn't clear enough. In all he made 18 appearances for Airdrie. Following his release from Rangers, Airdrie tried to sign Adam him on a permanent deal however Adam was looking for a full-time club.
St Mirren
On his return from loan, Adam was out of contract. After his contract with Rangers expired, he joined Scottish Premier League side St Mirren on trial. He travelled with the club on their pre-season tour of Spain and featured for them as a trialist during their pre-season friendlies. On 26 July 2012, Adam signed a two-year contract and was given the squad number 16. During an under-20 match against Celtic on 7 August, Adam damaged his posterior cruciate ligament and suffered a hairline fracture on his tibia in an accidental clash with teammate Jordan Holt; the injury ruled him out of action for three to four months. Following his return from injury, he rejoined Airdrie United on loan. He made his debut for the second time the following day, against Cowdenbeath in a 1–1 draw. After two games on 14 December, his loan was extended until 13 January 2013. Following the death of his father he was granted compassionate leave by the club, missing one game. In all he made eight appearances, before returning to St Mirren.
Cowdenbeath, Airdrieonians & Dundee
Adam left St Mirren at the end of the 2012–13 season. He signed for Cowdenbeath and played in 11 Scottish Championship games for the club. In January 2014, he signed for Airdrieonians. Ahead of the 2014–15 season, Adam signed for Dundee on a short term contract. He left the club at the end of his contract on 1 September 2014.
Morton, Cowdenbeath & Forfar
On 23 September 2014, Adam signed for Alloa Athletic, however three days later Alloa manager Barry Smith announced that due to a problem with the player's registration, the signing would not take place. On 6 December 2014, Adam played as a trialist for Greenock Morton as they lost 2–0 to Stranraer. After the trial spell, Adam signed until the end of the season in January 2015. In May 2015, he signed a new one-year contract with Morton. He was released in January 2016 and signed for Cowdenbeath. After less than 6 months at Central Park and following their relegation to the fourth tier of Scottish football, Adam signed a two-year deal with Forfar Athletic, where he previously had a short loan spell whilst at Rangers.
Dumbarton
After leaving Forfar Athletic, Adam joined Dumbarton in June 2018, signing a one-year deal. After an injury hit season with the Sons, he was released by the club in May 2019.
Adam has represented Scotland at under-16, under-17 and under-19 level. He was called up to the Scotland under-21 squad for the first time in August 2010. He made his debut on 24 March 2011 in a 1–0 defeat to Belgium. Following his appearance in court for breach of the peace, he was dropped from the squad to play the Netherlands in November 2011, losing his starting place to Mark Ridgers. He returned to the international squad on 26 April 2012, as a half time substitute in their match against Italy. He lasted only a few minutes before being stretchered off with a head knock. Adam made six appearances for the squad.
Personal life
Adam was raised in Dundee. He is the son of the late Charles Adam and brother of fellow footballer Charlie Adam. His father died aged 50 in December 2012, during Grant's second loan spell with Airdrie United. On 6 July 2011, he was arrested and charged over an alleged sectarian breach of the peace outside the Corinthian nightclub in Glasgow. He pleaded not guilty to the charge. This led to him being dropped from the Scotland under-21 squad. He appeared in court again in February 2012 but the case was adjourned to May. On 4 May 2012, he was found guilty and fined £500 by the court.