A dial indicator will get you close... but close ONLY, as there is remaining crankshaft rotation while the piston appears to be at it's top of travel.
A dial indicator and a degree wheel
will work if you take two opposing, but identical, readings @ approximately 40 degrees from one another!
(does not need to be 40*.... but 40* is a place to start)
40* split, gives you 15* BTDC and 15* ATDC.
When you divide this split, you have
TDC!
If you want accuracy, you will want to do the positive piston stop with a degree wheel.
The procedure is similar, but more accurate due to the positiveness of the piston stop from each direction!
(If you have not done this, you will find instructions on the Internet)
Here is one type of positive piston stop. You can buy these, or make one!
The one to the left is superior because of the locking nut. The one to the right may have a friction pill in the threads... I don't know!
Then you need a 360 degree wheel and a pointer. The pointer can be nothing more than a piece of heavy gauge wire.
This article pretty much explains it as I would.
If you Google "Positive piston stop TDC method" you'll find many articles on this. Most articles are used for degreeing camshafts, but will work extremely well for what you are doing.
I've been doing this since the mid 60's.... I can tell you first hand that it works well and is very accurate.
.