Lots of Continues in an Inner Loop and Dictionary of Actions
If you do this often, you could write an extension method for object that takes a function, which is executed only when the input is not null. You could then use it in a fluent manner to navigate multiple times:

public static class Navigator
{
    public static TOutput Navigate&lt;TInput, TOutput&gt;(
        this TInput input, Func&lt;TInput, TOutput&gt; navigationFunction)
        where TOutput : class
    {
        if (input == null)
            return null;

        return navigationFunction(input);
    }
}


Usage:

var destinationPage = 
    (annotationMaster.Resolve(Atom.GetItem(annotationMaster.Atom, 0)) as DictAtom)
        .Navigate(annotItem =&gt; annotItem["D"] as ArrayAtom)
        .Navigate(destination =&gt; destination[0] as RefAtom);

if (destinationPage == null)
    continue;


Notice that I also removed the braces. This is a matter of personal opinion (and sometimes company policy), but I think that they're not always necessary, especially when the body of the condition is this simple.