The court said the criminal case against him should be dismissed and he had a "right to rehabilitation", Russian media report.
Mr Dadin, jailed in December 2015, has been serving two-and-a-half years for a series of protests.
Last November he said he was tortured in prison in north-west Russia.
The authorities denied the claims, but transferred him to another prison.
Wednesday's court ruling came after Russia's constitutional court earlier this month concluded that Mr Dadin's case needed to be reviewed.
Mr Dadin was convicted under a new law - Article 212.1 - which made repeated violations of Russia's strict protest rules a crime.
He was originally jailed for three years -
though the sentence was later reduced - for a series of peaceful protests, which often involved standing silently in the street with a sign.
Earlier this month, the constitutional court ruled that Article 212.1 should not be applied in cases where protests did not constitute a threat and sent it for review to the Supreme Court.
Mr Dadin appeared on a video link for Wednesday's proceedings and lay his head on a desk in protest at being refused permission to travel to the court in person, reports the BBC's Sarah Rainsford from the hearing.
His wife Anastasia cheered the court's ruling. She told the BBC she was very happy and hoped the controversial law used to imprison her husband would never be used again.