Rakhmat Akilov admitted responsibility for the attack at a custody hearing in the Swedish capital.
Police said a second man arrested over the attack would face no charges but is set to be deported.
Four people died in Friday's crash, two Swedes, a Belgian and Chris Bevington, 41-year-old British man.
Some 15 people were also injured, many seriously.
On Saturday, police confirmed the suspect of the crash is a 39-year-old man from Uzbekistan.
The man's name was later confirmed by court documents as Rakhmat Akilov.
Akilov was identified as a man police were "particularly interested in" after being arrested "in the vicinity" of the crash site, Stockholm police's Jan Evensson confirmed.
Evensson added that the man was spotted by a police patrol in Marsta, a northern Stockholm suburb close to the city's international airport, and was in a police photo released earlier Friday wearing a greenish hood at the top of an escalator.
A second male suspect also arrested in connection with the attack will face no charges as "suspicions have weakened", the prosecution authority said in a statement.
The man will not be released due to an earlier decision that he should be expelled from Sweden, the authority added.