I'm not convinced that what you are doing really makes sense, but I did see the recursive pattern in your code and I believe that this is how you can refactor it.

First of all, we create a method that you can call recursively:

    void DoSomething(int index) {
        for (Pointers[index] = 0; Pointers[index] < 8; Pointers[index]++) {
            if (AdjM[Pointers[index], Pointers[index - 1]])
                if (Pointers[index] == VertEnd)
                    AddPath(index + 1);
    
            if (index < 7) {
                DoSomething(index + 1);
            }
        }
    }

Then, unfortunately, the outermost loop did not completely match this pattern so the first loop remains, but it can be used to call the second:
    
    for (Pointers[0] = 0; Pointers[0] < 8; Pointers[0]++)
        if (AdjM[Pointers[0], VertStart + 0])
        {
            DoSomething(1);
        }

A few other notes:

- It is recommended to always use braces
- Your number '8' is a 'magic number'. That should be extracted to a constant.