It is difficult to find references from the DEM. So before co registered you DEM. Please generate steam network using DEM. After that you can use that stream network as your reference.
Visualize terrain using hillshading or sky-view factor visualization method - see http://iaps.zrc-sazu.si/en/programi-in-projekti/sky-view-factor-based-visualization#v.
Then use any GIS software to measure the distance between some well seen features and estimate the shift from them.
The software OPALS, developed by GEO TU Wien, has features and a package script designed exactly for this problem. It finds flat areas in overlapping (but shifted) DEM-s, calculates the 3D transformations necessary to bring them to exact fit, and can also optimize a series of transformations for the best fit of many DEM with the global minimum of shifts.
Software website is http://geo.tuwien.ac.at/opals/html/index.html, there is a free trial version restricted to 1 million data points/raster cells
Runs on windows with a command line interface, can be scripted in batch or python.
Orfeo along with Monteverdi from CNES (French Space Agency) offers such feature. I also had good results while using the imregister function of Matlab but all of these options will strongly depend on how badly your initial DEMs are misregistered and how bad or good the data are (noise level, spatial resolution...).