"ancien" est plus respectueux que "vieux", car "ancien" évoque quelque chose d'assez vieux pour être respecté en vertu de son âge.
une vieille maison = une maison qui est peut-être pleine de défauts, peut-être qu'elle est démodée, peut-être qu'elle risque de s'effondrer etc...
une maison ancienne= une maison qui a peut-être plusieurs siècles, mais ici on insiste sur le côté historique de la maison.
Mais en général tu peux utiliser les deux, sauf pour les personnes :
On peut dire "un ancien" en parlant de quelqu'un de "vénérable", âgé, mais on ne dit pas "un homme ancien"--> là c'est plutôt une moquerie.
A l'inverse, "un vieux" est péjoratif, "un vieil homme" ne pose pas de problèmes.