‘하던’과 ‘했던’은 모두 과거를 나타내는 것이기 때문에 특별한 차이를 드러내지 않는 경우가 더 많습니다. 다만 화자가 어떤 의도로 말을 하느냐에 따라서 약간의 차이가 있는 경우가 있습니다.
‘-던’은 앞말이 관형사 구실을 하게 하고, 어떤 일이 과거에 완료되지 않고 중단되었다는 미완(未完)의 뜻을 나타내거나, 과거에 지속적으로 반복했던 동작이나 한 번 했던 일을 나타낼 때 쓰입니다. 그런데 ‘-던’ 앞에 ‘-았(었/였)-’이 결합된 '-았던(었던/였던)'은, '-았(었/였)-'이 이야기하는 시점에서 볼 때 사건이 이미 일어났음을 나타내는 어미이기 때문에, 과거와 단절된 것을 나타내게 됩니다. 이처럼 ‘-던’과 ‘-았던(었던/였던)’은 모두 과거의 일을 나타내는 것이기는 하지만 '-던'을 쓰면 과거에 습관적으로 지속된 동작이나 진행되다가 완료되지 않은 미완의 동작을 나타내고, '-았던(었던/였던)'을 쓰면 현재는 과거의 그 일과는 완전히 단절되었음을 더 나타낸다고 할 수 있습니다
출처: 국립국어원