You can compute the PCA on overlapping windows,
and try to match the eigenvectors:
you may need to change not only their sign
(since only the eigenspaces are well-defined,
the sign of the eigenvectors is arbitrary)
but also their order.
Here is some (untested) R code to do this.
# Sample data
k <- 7
n <- 50
found <- FALSE
while(!found) {
x <- matrix(rnorm(k*(n*1)),nc=k)
e1 <- eigen(var(x[-1,]))
e2 <- eigen(var(x[1:n,]))
found <- e1$vectors[1,1] * e2$vectors[1,1] < 0
}
colnames(e1$vectors) <- LETTERS[1:k]
colnames(e2$vectors) <- letters[1:k]
# Compare the eigenvectors,
# by computing the cosine of the angle they form.
d <- cor(e1$vectors, e2$vectors)
# Permutation of the vectors
i <- apply(abs(d), 1, which.max)
e2$values <- e2$values[i]
e2$vectors <- e2$vectors[,i]
# Change the sign, if needed
j <- sign(diag(d[1:k,i]))
e2$vectors <- t( t(e2$vectors) * j )